<?php
$redis = new \redis();
$redis->connect('127.0.0.1','16379');
////$redis->pconnect('127,0.0.1',6379);
$redis->select(1);

/**
 * String（字符串）
 * string 是 redis 最基本的类型，你可以理解成与 Memcached 一模一样的类型，一个 key 对应一个 value。
 * string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
 * string 类型是 redis 最基本的数据类型，string 类型的值最大能存储 512MB。
 */
//$redis->set('username','赵先生string');
//$result = $redis->get('username');

/**
 * Hash（哈希）
 * redis hash 是一个键值(key=>value)对集合。
 * redis hash 是一个 string 类型的 field 和 value 的映射表，hash 特别适合用于存储对象。
 */
//echo phpinfo();exit;
$hash_val = ['user1'=>'111','user2'=>'哈哈'];
$hash_val2 = ['user1'=>'111','user2'=>'哈哈'];
$redis->hMset('hash', $hash_val);
$redis->hMset('hash', $hash_val2);
$result = $redis->hGetAll('hash');
$result2 = $redis->hGet('hash','user2');

/**
 * List（列表）
 * redis 列表是简单的字符串列表，按照插入顺序排序。你可以添加一个元素到列表的头部（左边）或者尾部（右边）。
 */
//$redis->del('list-test');
//$redis->lPush('list-test','赵先生list1');
//$redis->lPush('list-test','赵先生list2');
//$redis->lPush('list-test','赵先生list3');
//$redis->rPush('list-test','赵先生list33');
//$redis->rPush('list-test','赵先生list2');
//$result = $redis->lRange('list-test',0,5);


/**
 * Set（集合）
 * redis 的 Set 是 string 类型的无序集合。
 * 集合是通过哈希表实现的，所以添加，删除，查找的复杂度都是 O(1)。
 * 添加一个 string 元素到 key 对应的 set 集合中，成功返回 1，如果元素已经在集合中返回 0。
 */
//$redis->sAdd('sAdd','赵先生sAdd1');
//$redis->sAdd('sAdd','赵先生sAdd2');
//$redis->sAdd('sAdd','赵先生sAdd3');
//$redis->sAdd('sAdd','赵先生sAdd3');
//$result = $redis->sMembers('sAdd');


/**
 * zset（有序集合）
 * redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
 * 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
 * zset的成员是唯一的,但分数(score)却可以重复。
 */
//$redis->zAdd('zAdd',0,'赵先生zAdd1');
//$redis->zAdd('zAdd',2,'赵先生zAdd2');
//$redis->zAdd('zAdd',0,'赵先生zAdd3');
//$redis->zAdd('zAdd',0,'赵先生zAdd4');
//$result = $redis->zRangeByScore('zAdd',0,5);
//var_dump($result);
var_dump($result);
var_dump($result2);


